#ifndef __DRV_TOUCH_PORT_H
#define __DRV_TOUCH_PORT_H
#include <board.h>

//IO方向设置
#define CT_SDA_IN()  {GPIOB->MODER&=~(3<<(9*2));GPIOB->MODER|=0<<9*2;}	
#define CT_SDA_OUT() {GPIOB->MODER&=~(3<<(9*2));GPIOB->MODER|=1<<9*2;} 	
//IO操作函数	
#define CT_IIC_SCL GET_PIN(B,8)

#define CT_IIC_SDA GET_PIN(B,9)

#define CT_RST  GET_PIN(C,9)

#define CT_INT	GET_PIN(A,4)

#define CT_IIC_SCL_H  rt_pin_write(CT_IIC_SCL,PIN_HIGH)
#define CT_IIC_SCL_L	rt_pin_write(CT_IIC_SCL,PIN_LOW)

#define CT_IIC_SDA_H  rt_pin_write(CT_IIC_SDA,PIN_HIGH)
#define CT_IIC_SDA_L	rt_pin_write(CT_IIC_SDA,PIN_LOW)

#define CT_READ_SDA   rt_pin_read(CT_IIC_SDA)

#define CT_RST_H      rt_pin_write(CT_RST,PIN_HIGH)
	
#define CT_RST_L			rt_pin_write(CT_RST,PIN_LOW)

#define CT_INT_H			rt_pin_write(CT_INT,PIN_HIGH)

#define CT_INT_L			rt_pin_write(CT_INT,PIN_LOW)

//I2C读写命令	
#define FT_CMD_WR 				0X70    	//写命令
#define FT_CMD_RD 				0X71		//读命令
  
//FT5206 部分寄存器定义 
#define FT_DEVIDE_MODE 			0x00   		//FT5206模式控制寄存器
#define FT_REG_NUM_FINGER       0x02		//触摸状态寄存器

#define FT_TP1_REG 				0X03	  //第一个触摸点数据地址
#define FT_TP2_REG 				0X09		//第二个触摸点数据地址
#define FT_TP3_REG 				0X0F		//第三个触摸点数据地址
#define FT_TP4_REG 				0X15		//第四个触摸点数据地址
#define FT_TP5_REG 				0X1B		//第五个触摸点数据地址  
 

#define	FT_ID_G_LIB_VERSION		0xA1		//版本		
#define FT_ID_G_MODE 			0xA4   		//FT5206中断模式控制寄存器
#define FT_ID_G_THGROUP			0x80   		//触摸有效值设置寄存器
#define FT_ID_G_PERIODACTIVE	0x88   		//激活状态周期设置寄存器

#define TP_PRES_DOWN 0x80  //触屏被按下	  
#define TP_CATH_PRES 0x40  //有按键按下了 
#define CT_MAX_TOUCH  5    //电容屏支持的点数,固定为5点

typedef struct TOUCH
{
	rt_uint16_t x[CT_MAX_TOUCH];
	rt_uint16_t y[CT_MAX_TOUCH];
}TOUCH;

rt_uint8_t FT5206_Init(void);
rt_uint8_t FT5206_Scan(rt_uint8_t mode);
#endif

